package basics.day11.interface_def;

/*
 * 定义接口：
 *   使用关键字 interface 接口名称
 * 接口定义：
 *   1. 成员方法，全为抽象
 *   2. 不能定义带有方法体的方法
 *
 * 定义抽象方法：固定格式
 *  1. public abstract 范围值类型 方法名(参数列表)
 *  2. 修饰符 public 写或者不写都是public 千万认为不写就是 default修饰符了
 *
 * 接口中成员变量的定义：
 *  成员变量的定义，具体要求：
 *      1. 必须定义为常量
 *      2. 定义格式：
 *          public static final 数据类型 变量名 = 值
 *          注意： 不写修饰符  默认也是public static final
 *
 * 特点：
 *  1. 成员变量的特点，没有变量，都是常量(不能被修改)
 *      固定格式：public static final 数据类型 变量名 = 值;
 *      public: 权限
 *      static: 可以被类直接调用
 *      final: 最终，固定不变
 *      注意： public static final 修饰符，在接口的定义中，可以省略不写，但是不等于没有，在接口中默认还是public static final
 *             所以这三个修饰符可以选择性书写
 *
 *  2. 接口中的成员方法特点：
 *      固定格式：public abstract 返回值数据类型 方法名(参数列表)
 *      注意：修饰符 public abstract 可以不书写，也可以选择性书写
 *
 * */
public interface Interface_def {
    /*
     * 注意：
     *   1. i是常量 是不能修改的 定义为10就一直为10
     *   2. 或者写成 public int 1 = 10;
     * */
    public static final int i = 10;

    // 在接口中定义抽象的方法
    public abstract void fun();
}
